let xmlHttpRequest;

// 创建 XMLHttpRequest 对象，处理兼容性问题
function createXMLHttpRequest(){
    if (window.XMLHttpRequest) {
        xmlHttpRequest = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // 针对旧版 IE
        xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        alert("当前浏览器不支持 AJAX，请升级浏览器！");
        return null;
    }
}

// 更新购物车
function updateCart(itemId) {
    var quantity = document.getElementById("quantity_" + itemId).value;

    // 验证输入是否为有效数字
    if (isNaN(quantity) || quantity <= 0) {
        alert("请输入有效的商品数量！");
        return;
    }

    // 安全性改进：使用 POST 请求，参数不暴露在 URL 中
    const url = "updateCartJSServlet";
    const params = `itemId=${itemId}&quantity=${encodeURIComponent(quantity)}`;

    // 发送请求
    sendRequest(url, params);

    // 发送 AJAX 请求
    $.ajax({
        type: 'POST',
        url: 'http://localhost:8080/untitled/updateCart',
        data: { itemId: itemId, quantity: quantity },
        success: function (response) {
            // 可选：更新前端界面
            console.log('购物车已更新！', response);
            location.reload(); // 刷新页面以获取最新数据
        },
        error: function (error) {
            console.log('更新失败:', error);
            alert('购物车更新失败，请重试！');
        },
    });
}

// 发送 AJAX 请求
function sendRequest(url, params) {
    createXMLHttpRequest();
    if (!xmlHttpRequest) return;

    xmlHttpRequest.open("POST", url, true);
    xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    xmlHttpRequest.onreadystatechange = processResponse;
    xmlHttpRequest.send(params);
}

// 处理响应
function processResponse() {
    if (xmlHttpRequest.readyState === 4) {
        if (xmlHttpRequest.status === 200) {
            try {
                // 确保这里解析的是有效的 JSON 格式
                const response = JSON.parse(xmlHttpRequest.responseText);

                // 更新页面中的购物车数据
                updateCartUI(response);
            } catch (e) {
                console.error("响应解析失败:", e);
                alert("响应解析失败，服务器返回的数据格式可能有问题！");
            }
        } else {
            console.error("AJAX 请求失败，状态码：" + xmlHttpRequest.status);
            alert("发生错误，请稍后再试！");
        }
    }
}
// 更新购物车 UI
function updateCartUI(response) {
    response.forEach(function(item) {
        const itemId = item.itemId;
        const quantity = item.quantity;
        const total = item.total;
        const subtotal = item.subtotal;

        // 更新 quantity 的值
        const quantityInput = document.getElementById("quantity_" + itemId);
        if (quantityInput) {
            quantityInput.value = quantity;
        }

        // 更新其他信息
        document.getElementById("total_" + itemId).innerText = formatCurrency(total);
        document.getElementById("subtotal").innerText = formatCurrency(subtotal);
    });
}

// 格式化金额（可以根据需要调整格式）
function formatCurrency(amount) {
    return "$" + parseFloat(amount).toFixed(2);  // 保留两位小数
}